﻿Imports Publics
Imports System.Windows.Forms

Public Class FrmCapNhatTCNX

    Private _Action As String
    Public Property Action() As String
        Get
            Return _Action
        End Get
        Set(ByVal value As String)
            _Action = value
        End Set
    End Property

    Private _TCNXEdit As DM_TCNX
    Public Property TCNXEdit() As DM_TCNX
        Get
            Return _TCNXEdit
        End Get
        Set(ByVal value As DM_TCNX)
            _TCNXEdit = value
        End Set
    End Property

    Private _IDTCNX As String
    Public Property IDTCNX() As String
        Get
            Return _IDTCNX
        End Get
        Set(ByVal value As String)
            _IDTCNX = value
        End Set
    End Property

    Private Sub btnThoat_ItemClick(ByVal sender As System.Object, ByVal e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnThoat.ItemClick
        If String.IsNullOrEmpty(txtMaTCNX.Text.Trim) Then
            Me.Close()
            Exit Sub
        End If
        If MsgAskSaveData("Chưa ghi dữ liệu, bạn có muốn thoát không?") = vMsg.vReSult.Yes Then
            Me.Close()
        End If
    End Sub

    Private Sub btnGhiVaDong_ItemClick(ByVal sender As System.Object, ByVal e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnGhiVaDong.ItemClick
        If SaveData() Then
            Me.Close()
        End If
    End Sub

    Private Sub FrmCapNhatTCNX_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
        If e.KeyCode = Keys.Escape Then
            btnThoat_ItemClick(Nothing, Nothing)
        End If
        'Ghi và đóng
        If clsDSPhimTatDefault.isCheckPhimTat(e, ELoaiPhimTat.pSAVECLOSE, btnGhiVaDong) Then
            btnGhiVaDong_ItemClick(Nothing, Nothing)
        End If
    End Sub

    Private Sub FrmCapNhatTCNX_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Select Case Action
            Case vEditAction, vCopyAction
                If Not String.IsNullOrEmpty(IDTCNX) Then
                    Dim objTCNX = (From ds In dbTV.DM_TCNXes Where ds.InUsed AndAlso ds.ID = IDTCNX Select ds).FirstOrDefault
                    If objTCNX IsNot Nothing Then
                        txtMaTCNX.Text = objTCNX.MaTCNX
                        txtTenTCNX.Text = objTCNX.TenTCNX
                        txtGhiChu.Text = objTCNX.GhiChu
                    End If
                End If
        End Select
    End Sub
    Private Function SaveData() As Boolean
        Try
            Dim strErr = CheckSave()
            If Not String.IsNullOrEmpty(strErr) Then
                MsgInfo(strErr)
                Return False
            End If
            Select Case Action
                Case vAddAction, vCopyAction
                    Dim objAdd As New DM_TCNX
                    objAdd.ID = CreateID()
                    IDTCNX = objAdd.ID
                    objAdd.MaTCNX = txtMaTCNX.Text.Trim
                    objAdd.TenTCNX = txtTenTCNX.Text.Trim
                    objAdd.GhiChu = txtGhiChu.Text.Trim
                    objAdd.InUsed = True
                    objAdd.EditedOn = dbTV.GetDateTimeServer
                    dbTV.DM_TCNXes.InsertOnSubmit(objAdd)
                    iSubmitChange()
                Case vEditAction
                    Dim objEdit = (From ds In dbTV.DM_TCNXes Where ds.InUsed AndAlso ds.ID = IDTCNX Select ds).FirstOrDefault
                    If objEdit IsNot Nothing Then
                        objEdit.MaTCNX = txtMaTCNX.Text.Trim
                        objEdit.TenTCNX = txtTenTCNX.Text.Trim
                        objEdit.GhiChu = txtGhiChu.Text.Trim
                        objEdit.EditedOn = dbTV.GetDateTimeServer
                    End If
                    iSubmitChange()
            End Select
            If Action = vAddAction Or Action = vCopyAction Then
                InsertTo_lstSourceAllKhachHang(IDTCNX)
                SaveLog("Cập nhật danh mục tính chất nhập xuất", "Thêm mới", String.Format("Mã TCNX: {0}; Tên TCNX: {1}", txtMaTCNX.Text.Trim, txtTenTCNX.Text.Trim), IDTCNX, "FrmCapNhatTCNX")
            ElseIf Action = vEditAction Then
                UpdateTo_lstSourceAllKhachHang(IDTCNX)
                SaveLog("Cập nhật danh mục tính chất nhập xuất", "Cập nhật", String.Format("Mã cũ: {0}; Mã mới {1}; Tên cũ {2}; Tên mới {3}", TCNXEdit.MaTCNX, txtMaTCNX.Text.Trim, TCNXEdit.TenTCNX, txtTenTCNX.Text.Trim), IDTCNX, "FrmCapNhatTCNX")
            End If
        Catch ex As Exception
            Return False
        End Try
        Return True
    End Function

    Private Function CheckSave() As String
        If String.IsNullOrEmpty(txtMaTCNX.Text.Trim) Then
            Return "Bạn chưa nhập mã tính chất nhập xuất"
        End If
        If String.IsNullOrEmpty(txtTenTCNX.Text.Trim) Then
            Return "Bạn chưa nhập tên tính chất nhập xuất"
        End If
        Select Case Action
            Case vAddAction, vCopyAction
                Dim objTCNX = (From ds In dbTV.DM_TCNXes Where ds.InUsed AndAlso ds.MaTCNX = txtMaTCNX.Text.Trim Select ds).FirstOrDefault
                If objTCNX IsNot Nothing Then
                    Return "Tồn tại mã tính chất nhập xuất"
                End If
            Case vEditAction
                If TCNXEdit.MaTCNX <> txtMaTCNX.Text.Trim Then
                    Dim objTCNX = (From ds In dbTV.DM_TCNXes Where ds.InUsed AndAlso ds.MaTCNX = txtMaTCNX.Text.Trim Select ds).FirstOrDefault
                    If objTCNX IsNot Nothing Then
                        Return "Tồn tại mã tính chất nhập xuất"
                    End If
                End If
        End Select
        Return ""
    End Function

    Private Sub btnGhiVaThem_ItemClick(ByVal sender As System.Object, ByVal e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnGhiVaThem.ItemClick
        If SaveData() Then
            txtMaTCNX.Text = ""
        End If
    End Sub
End Class